import 'dart:io';
import 'dart:isolate';

var i;

void main()
{
  // i = 10;
  // //创建一个消息接收器
  // ReceivePort receivePort = ReceivePort();
  // //创建isolate
  // Isolate.spawn(isolateMain, receivePort.sendPort);
  //
  // //接收其他isolate发过来的消息
  // receivePort.listen((message)
  // {
  //   //发过来sendPort,则主isolate也可以向创建的isolate发送消息
  //   if (message is SendPort)
  //   {
  //     message.send("好呀好呀!");
  //   }
  //   else
  //   {
  //     print("接到子isolate消息:" + message);
  //   }
  // });
  //
  // //增加休眠，是否会影响listen的时机？
  // sleep(const Duration(seconds: 2));
  // print("休眠完成");

  var flie = File("C:\\Users\\ASUS\\Desktop\\自我介绍.txt").readAsString().then((content)
  {
    print(content);
  });

  flie.whenComplete(() => print('whenComplete'));

  // while(true){}

  //future内部就是调用了 scheduleMicrotask
  Future.microtask(()
  {
    print("future: excute microtask");
  });
}

/// 新isolate的入口函数
void isolateMain(SendPort sendPort)
{
  // isolate是内存隔离的，i的值是在主isolate定义的所以这里获得null
  print(i);

  ReceivePort receivePort = ReceivePort();
  sendPort.send(receivePort.sendPort);

  // 向主isolate发送消息
  sendPort.send("去大保健吗？");

  receivePort.listen((message)
  {
    print("接到主isolate消息:" + message);
  });
}